package cn.iocoder.yudao.module.member.user.vo;

import cn.iocoder.yudao.framework.common.validation.Mobile;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  FIXME 这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2024/11/29
 */
@Schema(description = "用户 APP - 用户名 + 密码 注册 Request VO")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppAuthRegisterReqVOV2 {

    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15285116029")
    @NotBlank(message = "手机号不能为空")
    @Mobile
    private String mobile;

    @Schema(description = "短信验证码", requiredMode = Schema.RequiredMode.AUTO, example = "9999")
    //@NotEmpty(message = "短信验证码不能为空")
    @Length(min = 4, max = 6, message = "短信验证码长度为 4-6 位")
    @Pattern(regexp = "^[0-9]+$", message = "短信验证码必须都是数字")
    private String code;

    @Schema(description = "初始密码，不设置的话将使用后台配置的", example = "123456")
    private String password;

    @Schema(description = "邀请人引荐码", example = "82403003")
    private String inviteCode;

}
